package adv5.exec;

import java.util.*;
import java.io.*;

public class CompanyTest {

	public static void main(String[] args) {
		final String SAVE_PATH = "e:/Temp/com.obj";
		// 公司有招聘员工（要求工号不能重复），有输出员工信息，以及辞退员工，和统计公司人数的方法
		Scanner in = new Scanner(System.in);

		// 1：在公司那题的基础上（公司有公司名称，注册地址，电话，经营范围等属性，
		// 公司有很多员工（用List存储，作为公司的一部分），员工有姓名，年龄，性别，职务，薪水、工号等属性，
		// 公司有招聘员工（要求工号不能重复），有输出员工信息，以及辞退员工，和统计公司人数的方法
		// 用oo的思想模拟，同时序列化公司的全部信息（包括员工）。下次启动能获得上次的信息
//
//		List<Staff> list = new ArrayList<Staff>();
//		Staff s1 = new Staff("张三", 23, "男", "保安", 3500, "001");
//		Staff s2 = new Staff("李四", 32, "男", "门卫大爷", 4500, "002");
//		Staff s3 = new Staff("王五", 20, "女", "清洁阿姨", 2500, "003");
//		Staff s4 = new Staff("老刘", 29, "男", "警卫", 4000, "004");
//		 
		// System.out.print(c.toString());

		ObjectInputStream ois = null;
		Company com = null;
		try {
			// 反序例化
			ois = new ObjectInputStream(new FileInputStream(SAVE_PATH));

			com = (Company) ois.readObject();
			System.out.println(com.getName() + "," + com.getAddress() + "," + com.getTel() + "," + com.getFanwei());
			com.companyShow();

		} catch (Exception e) {
			// e.printStackTrace();
			System.out.println("新公司成立：");
			com = new Company();
			com.companyShow();

		} finally {
			try {
				if (ois != null)
					ois.close();

			} catch (Exception e) {
				e.printStackTrace();
			}
		}
		int choose = 0;
		while (true) {
			System.out.println("请选择：1.招聘员工， 2.输出员工信息，3.辞退员工，4.统计公司总人数，5.退出系统");
			choose = in.nextInt();
			if (choose == 1) {
				System.out.println("请输入员工工号：");
				Staff s = new Staff();
				s.setWorkNum(in.next());
				System.out.println("请输入员工姓名：");
				s.setName(in.next());
				System.out.println("请输入年龄：");
				s.setAge(in.nextInt());
				System.out.println("请输入性别：");
				s.setSex(in.next());
				System.out.println("请输入职务：");
				s.setWork(in.next());
				System.out.println("请输入薪水：");
				s.setXinshui(in.nextDouble());
				com.addstaff(s);
			} else if (choose == 2) {
				com.showStaff();
			} else if (choose == 3) {
				System.out.println("请输入员工工号：");
				String staff1 = in.next();
				boolean isdelete = com.dismiss(staff1);
				System.out.println(isdelete ? "开除成功！" : "查无此人！");

			} else if (choose == 4) {
				System.out.println("当前公司总人数：" + com.count());
			} else if (choose == 5) {
				System.out.println("退出系统成功！");
				// 现在要保存公司及其员工
				try {
					ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(SAVE_PATH));
					oos.writeObject(com);
					oos.close();
				} catch (Exception e) {
					// TODO 自动生成的 catch 块
					e.printStackTrace();
				}
				break;
			}
		}

	}

}
